Deklariert auf Modulebene Verweise auf externe Prozeduren in einer Dynamic Link Library (DLL) or code resource (Macintosh).
Syntax 1
[Public | Private] Declare Sub Name Lib "BibName" [Alias "Aliasname"] [([ArgListe])]
Syntax 2
[Public | Private] Declare Function Name Lib "BibName" [Alias "Aliasname"] [([ArgListe])] [As Typ]
Syntax 3 (Power Macintosh)
[Public | Private ] Declare Function Name [CDecl] Lib "BibName" [Alias "Aliasname" ] [([ArgListe])] [As Typ]
Die Syntax der Declare-Anweisung besteht aus folgenden Teilen:
Teil | Beschreibung |
---|---|
Public | Optional. Deklariert Prozeduren, die allen anderen Prozeduren in allen Modulen zur Verfⁿgung stehen. |
Private | Optional. Deklariert Prozeduren, die nur innerhalb des Moduls verfⁿgbar sind, in dem sie deklariert wurden. |
Sub | Optional (entweder Sub oder Function mu▀ auftreten). Die Prozedur gibt keinen Wert zurⁿck. |
Function | Optional (entweder Sub oder Function mu▀ auftreten). Die Prozedur gibt einen Wert zurⁿck, der in einem Ausdruck verwendet werden kann. |
Name | Erforderlich. Ein beliebiger gⁿltiger Name fⁿr eine Prozedur. Beachten Sie, da▀ bei den Namen der DLL- Einsprungpunkte zwischen Gro▀-/Kleinschreibung unterschieden wird. |
Lib | Erforderlich. Die deklarierte Prozedur ist in einer DLL oder Code-Ressource enthalten. Der Lib-Abschnitt ist bei allen Deklarationen erforderlich. |
BibName | Erforderlich. Name der DLL oder Code-Ressource, die die deklarierte Prozedur enthΣlt. |
Alias | Optional. Gibt an, da▀ die aufgerufene Prozedur in der DLL einen anderen Namen hat. Dies ist sinnvoll, wenn der Name einer externen Prozedur einem Schlⁿsselwort entspricht. Alias kann auch verwendet werden, wenn eine DLL-Prozedur denselben Namen hat wie eine ÷ffentliche Variable, Konstante oder eine andere Prozedur mit demselben Gⁿltigkeitsbereich. Alias bietet sich darⁿber hinaus an, wenn bestimmte Zeichen im Namen der DLL-Prozedur aufgrund der Namenskonvention fⁿr DLLs nicht zulΣssig sind.
Auf dem Power Macintosh kann das Schlⁿsselwort Alias auch verwendet werden, um anzuzeigen, da▀ die aufgerufene Prozedur sich in einer Macintosh Code-Ressource befindet. |
Aliasname | Optional. Name der Prozedur in der DLL oder Code-Ressource. Wenn das erste Zeichen nicht das Zeichen # ist, gibt Aliasname den Namen des Einsprungpunktes in der DLL an. Ist das Zeichen # das erste Zeichen, so mⁿssen alle nachfolgenden Zeichen die Ordnungszahl (laufende Nummer) fⁿr den Einsprungpunkt in die Prozedur angeben.
Auf dem Power Macintosh kann Aliasname folgenderma▀en verwendet werden, um den Typ der Code-Ressource anzugeben: "[Ressourcentyp]$[Ressourcenname]" Der Ressourcentyp ist eine beliebige zulΣssige Konstante. Wird sie nicht angegeben, so ist der Standard-Ressourcentyp CODE. Der Ressourcenname ist der Name der Prozedur in der Code-Ressource. Wird Ressourcenname weggelassen, so wird Name als Ressourcenname angenommen. |
ArgListe | Optional. Variablenliste mit den Argumenten, die beim Aufruf an die Prozedur ⁿbergeben werden. |
Typ | Optional. Datentyp des Rⁿckgabewerts einer Function-Prozedur. ZulΣssige Typen sind: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zur Zeit nicht unterstⁿtzt), Date, String (nur Zeichenfolgen variabler LΣnge) oder Variant, ein benutzerdefinierter Typ oder ein Objekttyp. |
CDecl | Auf dem Power Macintosh kann das Schlⁿsselwort CDecl verwendet werden, um anzuzeigen, da▀ die Prozedur die Argument-Reihenfolge, Namens- und Aufrufkonventionen der Sprache C verwendet. |
Das Argument ArgListe hat die folgende Syntax und die folgenden Teile:
[Optional] [ByVal | ByRef] [ParamArray] VarName[( )] [As Typ]
Teil | Beschreibung |
---|---|
Optional | Optional. Ein Argument ist nicht erforderlich. Alle im Anschlu▀ an Optional in ArgListe angegebenen Argumente mⁿssen ebenfalls optional sein und mit dem Schlⁿsselwort Optional deklariert werden. Optional kann nicht verwendet werden, wenn ParamArray verwendet wird. |
ByVal | Optional. Das Argument wird als Wert ⁿbergeben. |
ByRef | Das Argument wird als Referenz ⁿbergeben. ByRef ist die Voreinstellung in Visual Basic. |
ParamArray | Optional. Wird nur als letztes Argument in ArgListe verwendet und gibt an, da▀ das letzte Argument ein Datenfeld vom Typ Optional aus Elementen vom Typ Variant ist. Das Schlⁿsselwort ParamArray erlaubt die Angabe einer variablen Anzahl von Argumenten und darf nicht in Kombination mit den Schlⁿsselw÷rtern ByVal, ByRef oder Optional verwendet werden. |
VarName | Erforderlich. Name der Variablen, die das an die Prozedur zu ⁿbergebende Argument darstellt. Der Name mu▀ den Standardkonventionen fⁿr Namen von Variablen entsprechen. |
( ) | Erforderlich fⁿr Datenfeldvariablen. Zeigt an, da▀ VarName ein Datenfeld ist. |
Typ | Optional. Datentyp des an die Prozedur ⁿbergebenen Arguments. ZulΣssige Typen sind: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zur Zeit nicht unterstⁿtzt), Date, String (nur Zeichenfolgen variabler LΣnge), Object, Variant, ein benutzerdefinierter Typ oder ein Objekttyp. |
Bemerkungen
In Function-Prozeduren legt der Datentyp fⁿr die Prozedur den Datentyp des Rⁿckgabewerts fest. Mit einem As-Abschnitt im Anschlu▀ an ArgListe k÷nnen Sie den Rⁿckgabetyp der Funktion festlegen. Innerhalb von ArgListe legen Sie mit einem As-Abschnitt den Datentyp der einzelnen an die Prozedur ⁿbergebenen Argumente fest. Neben den Standard-Datentypen k÷nnen Sie an dieser Stelle auch As Any in ArgListe angeben, um die Typprⁿfung zu unterdrⁿcken und einen beliebigen Datentyp an die Prozedur zu ⁿbergeben.
Ein leeres Klammernpaar steht fⁿr eine Sub- oder Function-Prozedur ohne Argumente und weist darauf hin, da▀ Visual Basic keine Argumente ⁿbergeben soll. Im folgenden Beispiel wird Erster
ohne Argumente deklariert. Wenn Sie beim Aufruf von Erster
ein Argument verwenden, tritt ein Fehler auf:
Declare Sub Erster Lib "MeineLib" ()
Wenn Sie eine Argumentliste angeben, werden die Anzahl und der Typ der Argumente bei jedem Prozeduraufruf ⁿberprⁿft. Im folgenden Beispiel erwartet Erster
ein Argument vom Typ Long:
Declare Sub Erster Lib "MeineLib" (X As Long)
Anmerkung Zeichenfolgen fester LΣnge sind in der Argumentliste einer Declare-Anweisung nicht zulΣssig, da nur Zeichenfolgen variabler LΣnge an eine Prozedur ⁿbergeben werden k÷nnen. Zeichenfolgen fester LΣnge sind als Prozedurargumente zwar zulΣssig, werden aber vor der ▄bergabe in Zeichenfolgen variabler LΣnge umgewandelt.
Anmerkung Die Konstante vbNullString wird von Visual Basic fⁿr den Aufruf externer Prozeduren verwendet, wenn die externe Prozedur eine Zeichenfolge mit dem Wert Null erfordert. Eine solche Zeichenfolge ist nicht mit einer Null-Zeichenfolge ("") identisch.
Auf dem Power Macintosh unterstⁿtzt die Declare-Anweisung Aufrufe von native Code nur in Codefragmenten. Der Aufruf von Code in Code-Ressourcen wird ebenfalls unterstⁿtzt, aber nur im 68000-Emulationsmodus.
Bei Verwendung auf dem Power Macintosh ist die Syntax der Declare-Anweisung folgende:
Declare Function MeineFunktion Lib "hd:Systemordner:Systemerweiterungen:MeinCodeFragment" Alias "MeineFunktion" () As Long
Sowohl bei Codefragmenten als auch bei Code-Ressourcen kann ein vollstΣndiger oder teilweiser Pfadname in der Lib-Klausel angegeben werden. Falls die angegebene Lib-Klausel mehrdeutig ist, wird sie folgenderma▀en aufgel÷st:
Damit ist die Erstellung von "Fat"-Codefragmenten m÷glich, d.h. von Dateien, die sowohl Code-Fragmente als auch 68000-Code-Ressourcen enthalten. Bei Ausfⁿhrung von Visual Basic for Applications auf einem 68000-Macintosh wird die Code-Ressource verwendet. Bei Ausfⁿhrung auf einem Power Macintosh wird das native Codefragment verwendet.
Die Macintosh-Toolbox ist auf dem Power Macintosh mit Hilfe einer Deklaration in das Codefragment des Systems zugΣnglich.